#ifndef _MAPLIST_H_
#define _MAPLIST_H_

#include <iostream>
#include <map>
#include <string>
#include "CustomizedMap.h"
#include "..\Exceptions\ElementNotFoundException.h"
#include "..\enum\ObjectType.h"
#include "..\enum\ObjectTypeUtils.h"

using namespace std;

class MapList{
	
	public:
		
		MapList(){}

		map<string, CustomizedMap> getMap();

		std::string getType();
		
		~MapList(){};

		map<string, CustomizedMap> mapList;

		void setType(std::string value);

		CustomizedMap* getElement(std::string key) throw (ElementNotFoundException);

		int getElementQuantity();

		bool isValid();

	private:

		std::string type;
		
		bool isElementValid();

		bool isValidGeneralTag();
};

#endif